#ifndef __HEAD_H__
#define __HEAD_H__

// 错误输出宏定义，写入日志文件并显示在终端
#define ERRLOG(msg) do {     time_t now = time(NULL);     char *timestr = ctime(&now);     timestr[strlen(timestr) - 1] = '\0'; /* 去掉末尾的换行符 */     FILE *log_file = fopen(LOG_FILE, "a");     if (log_file) {         fprintf(log_file, "[%s] 错误: %s\t文件: %s\t函数: %s\t行号: %d\n\n",                 timestr, msg, __FILE__, __func__, __LINE__);         fclose(log_file);     } else {         fprintf(stderr, "错误: 无法打开日志文件: %s\n", LOG_FILE);     }     /* 输出到标准错误流 */     fprintf(stderr, "[%s] 错误: %s\t文件: %s\t函数: %s\t行号: %d\n",             timestr, msg, __FILE__, __func__, __LINE__); } while (0)


// 导入系统头文件
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <time.h>
#include <ncurses.h>
#include <locale.h>
#include <wchar.h>

// 导入项目头文件
#include "D_List.h"      // 双向循环链表操作
#include "S_List.h"      // 单链表操作
#include "S_Arr.h"       // 顺序表操作
#include "Login.h"       // 用户操作 登陆 注册
#include "System.h"
#include "Ui.h"
#include "start.h"



// 定义宏定义
#define LOG_FILE "log/error.log"                    // 报错日志文件
#define FLIGHTS_FILE "data/flights.txt"             // 航班信息文件

// 定义用户信息文件路径
#define ADMIN_FILE "data/admin_users.txt"           // 管理员账户信息文件
#define REGULAR_FILE "data/regular_users.txt"       // 普通用户信息文件
#define SILVER_FILE "data/silver_members.txt"       // 银卡会员信息文件(9折) 余额 10000
#define GOLD_FILE "data/gold_members.txt"           // 金卡会员信息文件(8折) 余额 15000
#define PLATINUM_FILE "data/platinum_members.txt"   // 白金会员信息文件(7折) 余额 20000
// 定义订单信息文件路径
#define ORDER_FILE "data/order.txt"                 // 订单信息文件
// 示例宏定义，可以用于获取折扣
#define SILVER_DISCOUNT 0.9                         // 银卡会员折扣(9折)
#define GOLD_DISCOUNT 0.8                           // 金卡会员折扣(8折)
#define PLATINUM_DISCOUNT 0.7                       // 白金会员折扣(7折)

#define GRADE_ADMIN     (1)    // 管理员账户信息文件
#define GRADE_REGULAR   (2)  // 普通用户信息文件
#define GRADE_SILVER    (3)   // 银卡会员信息文件(9折) 余额 10000
#define GRADE_GOLD      (4)     // 金卡会员信息文件(8折) 余额 15000
#define GRADE_PLATINUM  (5) // 白金会员信息文件(7折) 余额 20000

#endif
